package com.rc.saas.tenant.model.invoice;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.rc.saas.tenant.base.BaseModel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

@ExcelIgnoreUnannotated
public class InvoiceApply extends BaseModel {
    @ExcelIgnore
    private Long invoiceApplyId;

    @ExcelProperty(value = "运营商代码", index = 0)
    private String tenantCode;

    @ExcelIgnore
    private Long memberId;

    @ExcelIgnore
    private String invoiceType;

    @ExcelProperty(value = "开票主体", index = 4)
    private String invoiceTitle;

    @ExcelProperty(value = "开票金额", index = 7)
    private BigDecimal amount;

    @ExcelProperty(value = "开票类型", index = 1, converter = InvoiceNormalTypeConverter.class)
    private String invoiceNormalType;

    @ExcelIgnore
    private String companyName;

    @ExcelProperty(value = "税号", index = 5)
    private String companyCredit;
    @ExcelIgnore
    private String companyAddress;
    @ExcelIgnore
    private String companyTel;
    @ExcelIgnore
    private String companyEmail;
    @ExcelIgnore
    private String companyBank;
    @ExcelIgnore
    private String companyBankAccount;
    @ExcelIgnore
    private String provinceId;
    @ExcelIgnore
    private String cityId;
    @ExcelIgnore
    private String areaId;
    @ExcelIgnore
    private String addresseeTel;
    @ExcelProperty(value = "申请人", index = 2)
    private String addressee;
    @ExcelIgnore
    private String address;

    @ExcelIgnore
    private String registerAddress;
    @ExcelIgnore
    private String registerTel;
    @ExcelIgnore
    private String postcode;
    @ExcelIgnore
    private String licenseImg1;
    @ExcelIgnore
    private String licenseImg2;
    @ExcelIgnore
    private String licenseImg3;
    @ExcelIgnore
    private String proxyType;

    @ExcelIgnore
    private String kplx;
    @ExcelIgnore
    private String sendType;

    @ExcelProperty(value = "状态", index = 8, converter = InvoiceStatusConverter.class)
    private String status;

    @ExcelIgnore
    private String createdBy;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "申请时间", index = 3)
    private Date createdTime;

    @ExcelIgnore
    private String lastUpdatedBy;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "操作时间", index = 9)
    private Date lastUpdatedTime;

    @ExcelIgnore
    private Long elecStationId;


    public String getRegisterAddress() {
        return registerAddress;
    }

    public void setRegisterAddress(String registerAddress) {
        this.registerAddress = registerAddress;
    }

    public String getRegisterTel() {
        return registerTel;
    }

    public void setRegisterTel(String registerTel) {
        this.registerTel = registerTel;
    }

    public String getPostcode() {
        return postcode;
    }

    public void setPostcode(String postcode) {
        this.postcode = postcode;
    }

    public String getInvoiceNormalType() {
        return invoiceNormalType;
    }

    public void setInvoiceNormalType(String invoiceNormalType) {
        this.invoiceNormalType = invoiceNormalType;
    }

    public Long getElecStationId() {
        return elecStationId;
    }

    public void setElecStationId(Long elecStationId) {
        this.elecStationId = elecStationId;
    }

    public Long getInvoiceApplyId() {
        return invoiceApplyId;
    }

    public void setInvoiceApplyId(Long invoiceApplyId) {
        this.invoiceApplyId = invoiceApplyId;
    }

    public String getTenantCode() {
        return tenantCode;
    }

    public void setTenantCode(String tenantCode) {
        this.tenantCode = tenantCode;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public String getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(String invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceTitle() {
        return invoiceTitle;
    }

    public void setInvoiceTitle(String invoiceTitle) {
        this.invoiceTitle = invoiceTitle;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCompanyCredit() {
        return companyCredit;
    }

    public void setCompanyCredit(String companyCredit) {
        this.companyCredit = companyCredit;
    }

    public String getCompanyAddress() {
        return companyAddress;
    }

    public void setCompanyAddress(String companyAddress) {
        this.companyAddress = companyAddress;
    }

    public String getCompanyTel() {
        return companyTel;
    }

    public void setCompanyTel(String companyTel) {
        this.companyTel = companyTel;
    }

    public String getCompanyEmail() {
        return companyEmail;
    }

    public void setCompanyEmail(String companyEmail) {
        this.companyEmail = companyEmail;
    }

    public String getCompanyBank() {
        return companyBank;
    }

    public void setCompanyBank(String companyBank) {
        this.companyBank = companyBank;
    }

    public String getCompanyBankAccount() {
        return companyBankAccount;
    }

    public void setCompanyBankAccount(String companyBankAccount) {
        this.companyBankAccount = companyBankAccount;
    }

    public String getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(String provinceId) {
        this.provinceId = provinceId;
    }

    public String getCityId() {
        return cityId;
    }

    public void setCityId(String cityId) {
        this.cityId = cityId;
    }

    public String getAreaId() {
        return areaId;
    }

    public void setAreaId(String areaId) {
        this.areaId = areaId;
    }

    public String getAddresseeTel() {
        return addresseeTel;
    }

    public void setAddresseeTel(String addresseeTel) {
        this.addresseeTel = addresseeTel;
    }

    public String getAddressee() {
        return addressee;
    }

    public void setAddressee(String addressee) {
        this.addressee = addressee;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getLicenseImg1() {
        return licenseImg1;
    }

    public void setLicenseImg1(String licenseImg1) {
        this.licenseImg1 = licenseImg1;
    }

    public String getLicenseImg2() {
        return licenseImg2;
    }

    public void setLicenseImg2(String licenseImg2) {
        this.licenseImg2 = licenseImg2;
    }

    public String getLicenseImg3() {
        return licenseImg3;
    }

    public void setLicenseImg3(String licenseImg3) {
        this.licenseImg3 = licenseImg3;
    }

    public String getProxyType() {
        return proxyType;
    }

    public void setProxyType(String proxyType) {
        this.proxyType = proxyType;
    }

    public String getKplx() {
        return kplx;
    }

    public void setKplx(String kplx) {
        this.kplx = kplx;
    }

    public String getSendType() {
        return sendType;
    }

    public void setSendType(String sendType) {
        this.sendType = sendType;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public String getLastUpdatedBy() {
        return lastUpdatedBy;
    }

    public void setLastUpdatedBy(String lastUpdatedBy) {
        this.lastUpdatedBy = lastUpdatedBy;
    }

    public Date getLastUpdatedTime() {
        return lastUpdatedTime;
    }

    public void setLastUpdatedTime(Date lastUpdatedTime) {
        this.lastUpdatedTime = lastUpdatedTime;
    }
}